1. Field of the Disclosure
The present disclosure generally relates to a system and method for rendering text data in web applications while reducing central processing unit to graphics processing unit bandwidth.
2. Background Information
Almost all modern operating systems provide standard application programming interfaces (APIs) for rendering text in client applications. For web applications, a browser provides this capability via hypertext markup language (HTML) and the document object model (DOM). For native applications, APIs such as CoreText® provide similar capabilities. These APIs are usually sufficient for implementing typical applications that require some amount of text to be displayed. However, when an application requires high performance rendering of full screens of text, and that text frequently changes, the standard APIs generally do not provide adequate performance.
One way of improving performance of text rendering is by taking advantage of graphics hardware acceleration provided by most modern graphics processing units (GPUs). Implementing text rendering in an API such as OpenGL® (or WebGL in a browser) allows software to access capabilities of the GPU. Some of the work traditionally done by the central processing unit (CPU) to render text can be transferred to the GPU, which frees the CPU to do other work and delegates the low-level rendering to a processor optimized for that task.
There are many variations of hardware accelerated text rendering algorithms, each with different goals in mind. These algorithms fall into two main categories: those that render glyphs from raster images, and those that render glyphs from higher precision mathematical models. For most client applications, the first type of algorithm is desirable due to its simplicity and efficiency. The second category is more useful when rendering text at many different visual scales.
The disclosure that follows is a variation of the first category of algorithms, those based on raster glyph images.